package gaml.text;

import gaml.error.GamlException;
import gaml.yaml.YamlNode;


/**
 * creates yaml text from specific (implementation dependant)
 * type of yaml node
 * @author shnireck
 *
 */
public interface YamlNodePrinter <Y extends YamlNode> {

	/**
	 * class of node to be printed
	 * @return yaml node class
	 */
	public Class <Y> getPrintNodeClass ();
	
	/**
	 * make a text representaion of yaml node
	 * @param node yaml node to represent as text
	 * @return text representaion of yaml node
	 */
	public YamlNodePrinter <Y> print (Y node, YamlText text) throws GamlException;
}